package com.hdax.service;

import com.hdax.entity.Contractfile;
import com.hdax.utils.ResultUtil;
import org.apache.ibatis.annotations.Param;
import org.yaml.snakeyaml.constructor.BaseConstructor;

import java.util.List;

/**
 * contractfile服务
 *
 * @author Aizen
 * @date 2022/05/19
 */
public interface ContractfileService {

    /**
     * 模糊查询
     *
     * @param contractname 合同名称
     * @param offset       抵消
     * @param limit        限制
     * @return {@link List}<{@link Contractfile}>
     */
    List<Contractfile> findByName(@Param("offset")int offset, @Param("limit")int limit,@Param("contractname") String contractname);

    /**
     * 根据名称获取总条数
     * @param contractname
     * @return
     */
    int countByName(@Param("contractname")String contractname);

    /**
     * 根据id获取当前合同信息
     * @param id
     * @return
     */
    Contractfile findById(@Param("id") int id);

    /**
     * 删除合同
     * @param id 合同编号
     * @return
     */
    ResultUtil deleteCon(@Param("id")int id);

    /**
     * 添加合同(ref表)
     * @param contractfile
     * @return
     */
    int insertCon(@Param("con")Contractfile contractfile);

    /**
     * 修改合同
     * @param contractfile
     * @return
     */
    int updateCon(@Param("confile")Contractfile contractfile);

    /**
     * 找到所有
     *
     * @return {@link List}<{@link Contractfile}>
     */
    List<Contractfile> findAll();


    /**
     * 添加合同（合同表）
     *
     * @param contractfile contractfile
     * @return {@link Object}
     */
    ResultUtil addContract(Contractfile contractfile);


    /**
     * 根据ID查询合同并且查看所有该合同的签订人
     * @param conId
     * @return ResultUtil
     */
    ResultUtil findConAndEmployee(@Param("conId")int conId);


    ResultUtil findConAndEmployee2(@Param("conId")int conId);

    /**
     * 导出合同
     *
     * @param conId 合同中间表编号
     * @return {@link Runtime}
     */
    Boolean export(Integer conId);
}
